package oppo

// 应用详情结果
type AppInfoResult struct {
	Errno int     `json:"errno"`
	Data  AppInfo `json:"data"`
}

// 应用详情
type AppInfo struct {
	AppId                string `json:"app_id"`                 // 应用ID
	PkgName              string `json:"pkg_name"`               // 应用包名
	UpdateTime           string `json:"update_time"`            // 应用更新时间
	AppCreateTime        string `json:"app_create_time"`        // 应用创建时间
	AppName              string `json:"app_name"`               // 应用名称
	IsFreeze             string `json:"is_freeze"`              // 应用是否被冻结， 0-否；1-是
	FreezeReason         string `json:"freeze_reason"`          // 被冻结原因
	RefuseReason         string `json:"refuse_reason"`          // 审核拒绝原因
	SecondCategoryId     string `json:"second_category_id"`     // 二级分类ID
	ThirdCategoryId      string `json:"third_category_id"`      // 三级分类ID
	CopyrightUrl         string `json:"copyright_url"`          // 软件版权证明
	SpecialUrl           string `json:"special_url"`            // 特殊类证书
	SpecialFileUrl       string `json:"special_file_url"`       // 特殊类证书压缩包
	BusinessUsername     string `json:"business_username"`      // 商务联系人姓名
	BusinessEmail        string `json:"business_email"`         // 商务联系人邮箱
	BusinessMobile       string `json:"business_mobile"`        // 商务联系人电话
	IcpUrl               string `json:"icp_url"`                // ICP备案网址或备案号
	VersionCode          string `json:"version_code"`           // 版本号
	VersionName          string `json:"version_name"`           // 版本名称
	ApkFullUrl           string `json:"apk_full_url"`           // apk文件完整地址
	OnlineType           string `json:"online_type"`            // 发布类型，1-审核立即发布；2-定时发布
	ScheOnlineTime       string `json:"sche_online_time"`       // 定时发布时间
	IconUrl              string `json:"icon_url"`               // 图标url
	IconMd5              string `json:"icon_md5"`               // 图标md5
	Summary              string `json:"summary"`                // 一句话简介
	DetailDesc           string `json:"detail_desc"`            // 软件介绍
	UpdateDesc           string `json:"update_desc"`            // 版本说明
	PicUrl               string `json:"pic_url"`                // 竖屏截图地址
	PrivacySourceUrl     string `json:"privacy_source_url"`     // 隐私政策网址
	OnlineTime           string `json:"online_time"`            // 上架时间
	OfflineTime          string `json:"offline_time"`           // 下架时间
	IsFirstPublish       string `json:"is_first_publish"`       // 是否首发
	BusinessRefuseReason string `json:"business_refuse_reason"` // 商务审核打回理由
	State                string `json:"state"`                  // 上架状态，1-上架；2-下架
	AuditStatus          string `json:"audit_status"`           // 审核状态
	AuditStatusName      string `json:"audit_status_name"`      // 审核状态描述
	OfflineInfo          string `json:"offline_info"`           // 下架申请信息
	TransferState        int    `json:"transfer_state"`         // 转让状态，-1-无；1-审核通过；2-审核不通过；3-同意接受；4-不同意接受
	UpdateInfoCheck      int    `json:"update_info_check"`      // 更新资料审核状态，1-审核中；0-不在审核中
	AgeLevel             string `json:"age_level"`              // APP年龄分级
	AdaptiveEquipment    string `json:"adaptive_equipment"`     // 平板适配，4-手机，5-平板，6-手机和平板
}

// 文件上传结果
type UploadResult struct {
	Errno int        `json:"errno"`
	Data  UploadInfo `json:"data"`
}

// 文件上传详情
type UploadInfo struct {
	Url           string `json:"url"`            // 文件地址（带域名）
	UriPath       string `json:"uri_path"`       // 文件 URI（不带域名）
	Md5           string `json:"md5"`            // 文件 MD5
	FileExtension string `json:"file_extension"` // 文件扩展名
	FileSize      int    `json:"file_size"`      // 文件大小
	Id            string `json:"id"`             // 标记
	Width         int    `json:"width"`          // 图片宽度（只有图片才有）
	Height        int    `json:"height"`         // 图片高度（只有图片才有）
}

// 获取文件上传配置结果
type UploadConfigResult struct {
	Errno int              `json:"errno"`
	Data  UploadConfigInfo `json:"data"`
}

// 文件上传配置详情
type UploadConfigInfo struct {
	UploadUrl string `json:"upload_url"` // 文件上传 URL
	Sign      string `json:"sign"`       // 一次性标识，单次有效，每个新文件必须重新获取
}

// 应用更新结果
type UpdateApkResult struct {
	Errno int           `json:"errno"`
	Data  UpdateApkInfo `json:"data"`
}

type UpdateApkInfo struct {
	Success bool   `json:"success"` // 请求成功时返回，必为 true
	Message string `json:"message"` // 响应信息，请求失败时会返回错误信息说明
}

// -----------------------------------------------------------------------------------------------------

// 应用资料更新请求参数
type OppoUpdateInfo struct {
	PkgName          string `json:"pkg_name"`
	VersionCode      string `json:"version_code"`
	Summary          string `json:"summary"`            // 一句话简介，不多于 15 个字符，不能包含任何标点符号和空格
	DetailDesc       string `json:"detail_desc"`        // 软件介绍，不少于 20 个字
	UpdateDesc       string `json:"update_desc"`        // 版本说明，不少于 5 个字
	PrivacySourceUrl string `json:"privacy_source_url"` // 隐私政策网址
	IconUrl          string `json:"icon_url"`           // 图标 url，尺寸：512*512px，图片格式：png，小于 1M
	PicUrl           string `json:"pic_url"`            // 竖版截图 url，多个用英文逗号分隔，不能少于两张，上传 3-5 张截图，支持 jpg、png 格式。 截图尺寸要求：1080*1920，单张图片不能超过 1M
	TestDesc         string `json:"test_desc"`          // 测试附加说明，最多输入 400 个字符
	CopyrightUrl     string `json:"copyright_url"`      // 软件版权证明
	BusinessUsername string `json:"business_username"`  // 商务联系人姓名
	BusinessEmail    string `json:"business_email"`     // 商务联系人邮箱
	BusinessMobile   string `json:"business_mobile"`    // 商务联系人电话

}

// 应用升级请求参数
type OppoUpdateApk struct {
	PkgName           string `json:"pkg_name" form:"pkg_name"`                     // 应用包名
	VersionCode       string `json:"version_code" form:"version_code"`             // 版本号
	ApkUrl            string `json:"apk_url" form:"apk_url"`                       // apk 包信息，请求时需转换成json格式，CPU 多包传多个，结构参考 ApkInfo
	AppName           string `json:"app_name" form:"app_name"`                     // 应用名称
	SecondCategoryId  string `json:"second_category_id" form:"second_category_id"` // 二级分类 ID，详情参照对照表
	ThirdCategoryId   string `json:"third_category_id" form:"third_category_id"`   // 三级分类 ID，详情参照对照表
	Summary           string `json:"summary" form:"summary"`                       // 一句话简介，不多于 15 个字符，不能包含任何标点符号和空格
	DetailDesc        string `json:"detail_desc" form:"detail_desc"`               // 软件介绍，不少于 20 个字
	UpdateDesc        string `json:"update_desc" form:"update_desc"`               // 版本说明，不少于 5 个字
	PrivacySourceUrl  string `json:"privacy_source_url" form:"privacy_source_url"` // 隐私政策网址
	IconUrl           string `json:"icon_url" form:"icon_url"`                     // 图标 url，尺寸：512*512px，图片格式：png，小于 1M
	PicUrl            string `json:"pic_url" form:"pic_url"`                       // 竖版截图 url，多个用英文逗号分隔，不能少于两张，上传 3-5 张截图，支持 jpg、png 格式。 截图尺寸要求：1080*1920，单张图片不能超过 1M
	OnlineType        string `json:"online_type" form:"online_type"`               // 发布类型，1-审核立即发布；2-定时发布
	TestDesc          string `json:"test_desc" form:"test_desc"`                   // 测试附加说明，最多输入 400 个字符
	CopyrightUrl      string `json:"copyright_url" form:"copyright_url"`           // 软件版权证明
	BusinessUsername  string `json:"business_username" form:"business_username"`   // 商务联系人姓名
	BusinessEmail     string `json:"business_email" form:"business_email"`         // 商务联系人邮箱
	BusinessMobile    string `json:"business_mobile" form:"business_mobile"`       // 商务联系人电话
	AgeLevel          string `json:"age_level" form:"age_level"`                   // APP年龄分级，示例：3
	AdaptiveEquipment string `json:"adaptive_equipment" form:"adaptive_equipment"` // 平板适配，4-手机，5-平板，6-手机和平板

}

// 应用升级apk信息
type apkInfo struct {
	Url     string `json:"url"`      // apk 包地址
	Md5     string `json:"md5"`      // apk 包 md5 值
	CpuCode string `json:"cpu_code"` // 多包平台，64 位 CPU 包为 64，32 位 CPU 包为 32，非多包应用为 0
}

// ----------------------------------------------------------------------------------------------------

// 域名
const domain_url = "https://oop-openapi-cn.heytapmobi.com"

// access token
const api_token = "/developer/v1/token"

// 应用详情
const api_app_info = "/resource/v1/app/info"

// 更新资料
const api_app_info_update = "/resource/v1/app/updm"

// 上传文件路径
const api_file_upload = "/resource/v1/upload/get-upload-url"

// 应用升级
const api_app_update = "/resource/v1/app/upd"
